#define _CRT_SECURE_NO_WARNINGS 1


//#include<map>
//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int totalFruit(vector<int>& fruits)
//{
//    map<int, int> hash;
//    int size = fruits.size(), left = 0, right = 0;
//    int Max = 0;
//    while (right < size)
//    {
//        hash[fruits[right]]++;
//        while(hash.size() > 2)
//        {
//            Max = max(Max, right - left);
//            hash[fruits[left]]--;
//            if (hash[fruits[left]] == 0)
//            {
//                hash.erase(fruits[left]);
//            }
//            left++;
//        }
//        right++;
//    }
//    Max = max(Max, right - left);
//    return Max;
//}
//
//int main()
//{
//    vector<int> v = { 3,3,3,1,2,1,1,2,3,3,4 };
//    cout << totalFruit(v) << endl;
//
//	return 0;
//}


//#include<map>
//#include<string>
//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//bool Func(map<char, int>& hash_p, map<char, int>& hash)
//{
//    auto it1 = hash_p.begin();
//    auto it2 = hash.begin();
//    while (it1 != hash_p.end())
//    {
//        if (it1->second != it2->second || it1->first != it2->first)
//        {
//            return false;
//        }
//        it1++;
//        it2++;
//    }
//    return true;
//}
//
//vector<int> findAnagrams(string s, string p)
//{
//    map<char, int> hash_p;
//    for (auto& e : p)
//    {
//        hash_p[e]++;
//    }
//    vector<int> v;
//    int size = s.size(), left = 0, right = 0;
//    int count = 0;
//    map<char, int> hash;
//    while (right < size)
//    {
//        count++;
//        hash[s[right]]++;
//        while (count == p.size())
//        {
//            if (Func(hash, hash_p))
//            {
//                v.push_back(left);
//            }
//            hash[s[left]]--;
//            if (hash[s[left]] == 0)
//            {
//                hash.erase(s[left]);
//            }
//            left++;
//            count--;
//        }
//        right++;
//    }
//    return v;
//}
//
//int main()
//{
//    string s1 = "cbaebabacd";
//    string s2 = "abc";
//    vector<int> v = findAnagrams(s1, s2);
//    for (auto& e : v)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;
//
//	return 0;
//}


//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//    int n = 0, m = 0, a = 0, b = 0;
//    cin >> n >> m >> a >> b;
//    int value = 0;
//    if (a > b)
//    {
//        while (n >= 2 && m >= 1)
//        {
//            value += a;
//            n -= 2;
//            m -= 1;
//        }
//        while (n >= 1 && m >= 2)
//        {
//            value += b;
//            n -= 1;
//            m -= 2;
//        }
//    }
//    else
//    {
//        while (n >= 2 && m >= 1)
//        {
//            value += b;
//            n -= 2;
//            m -= 1;
//        }
//        while (n >= 1 && m >= 2)
//        {
//            value += a;
//            n -= 1;
//            m -= 2;
//        }
//    }
//    cout << value << endl;
//
//    return 0;
//}


#include<algorithm>
#include<string>
#include<iostream>

using namespace std;

int main()
{
    string s;
    getline(cin, s);
    int size = s.size();
    int cur = size - 1;
    while (cur >= 0)
    {
        string str;
        while (cur >= 0 && s[cur] != ' ')
        {
            str += s[cur];
            cur--;
        }
        reverse(str.begin(), str.end());
        cur--;
    }

    return 0;
}